flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
↳ QTRS
↳ DependencyPairsProof
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
FLATTEN1(++2(x, y)) -> FLATTEN1(x)
REV1(++2(x, y)) -> REV1(x)
REV1(++2(x, y)) -> REV1(y)
FLATTEN1(++2(x, y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(x)
++12(++2(x, y), z) -> ++12(x, ++2(y, z))
FLATTEN1(++2(x, y)) -> ++12(flatten1(x), flatten1(y))
REV1(++2(x, y)) -> ++12(rev1(y), rev1(x))
FLATTEN1(++2(unit1(x), y)) -> ++12(flatten1(x), flatten1(y))
FLATTEN1(unit1(x)) -> FLATTEN1(x)
++12(++2(x, y), z) -> ++12(y, z)
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
FLATTEN1(++2(x, y)) -> FLATTEN1(x)
REV1(++2(x, y)) -> REV1(x)
REV1(++2(x, y)) -> REV1(y)
FLATTEN1(++2(x, y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(x)
++12(++2(x, y), z) -> ++12(x, ++2(y, z))
FLATTEN1(++2(x, y)) -> ++12(flatten1(x), flatten1(y))
REV1(++2(x, y)) -> ++12(rev1(y), rev1(x))
FLATTEN1(++2(unit1(x), y)) -> ++12(flatten1(x), flatten1(y))
FLATTEN1(unit1(x)) -> FLATTEN1(x)
++12(++2(x, y), z) -> ++12(y, z)
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
++12(++2(x, y), z) -> ++12(x, ++2(y, z))
++12(++2(x, y), z) -> ++12(y, z)
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
++12(++2(x, y), z) -> ++12(x, ++2(y, z))
++12(++2(x, y), z) -> ++12(y, z)
POL(++2(x1, x2)) = 3 + 3·x1 + 2·x1·x2 + 3·x2
POL(++12(x1, x2)) = 3·x1
POL(nil) = 0
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
REV1(++2(x, y)) -> REV1(y)
REV1(++2(x, y)) -> REV1(x)
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
REV1(++2(x, y)) -> REV1(y)
REV1(++2(x, y)) -> REV1(x)
POL(++2(x1, x2)) = 1 + x1 + 2·x2
POL(REV1(x1)) = 2·x1 + 2·x12
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
FLATTEN1(++2(x, y)) -> FLATTEN1(x)
FLATTEN1(++2(x, y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(x)
FLATTEN1(unit1(x)) -> FLATTEN1(x)
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
FLATTEN1(++2(x, y)) -> FLATTEN1(x)
FLATTEN1(++2(x, y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(y)
FLATTEN1(++2(unit1(x), y)) -> FLATTEN1(x)
Used ordering: Polynomial interpretation [21]:
FLATTEN1(unit1(x)) -> FLATTEN1(x)
POL(++2(x1, x2)) = 1 + 2·x1 + x2
POL(FLATTEN1(x1)) = 2·x1
POL(unit1(x1)) = x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
FLATTEN1(unit1(x)) -> FLATTEN1(x)
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
FLATTEN1(unit1(x)) -> FLATTEN1(x)
POL(FLATTEN1(x1)) = 2·x1
POL(unit1(x1)) = 2 + x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
flatten1(nil) -> nil
flatten1(unit1(x)) -> flatten1(x)
flatten1(++2(x, y)) -> ++2(flatten1(x), flatten1(y))
flatten1(++2(unit1(x), y)) -> ++2(flatten1(x), flatten1(y))
flatten1(flatten1(x)) -> flatten1(x)
rev1(nil) -> nil
rev1(unit1(x)) -> unit1(x)
rev1(++2(x, y)) -> ++2(rev1(y), rev1(x))
rev1(rev1(x)) -> x
++2(x, nil) -> x
++2(nil, y) -> y
++2(++2(x, y), z) -> ++2(x, ++2(y, z))